package com.library.management.service;

import com.library.management.domain.OperationLogs;
import com.baomidou.mybatisplus.extension.service.IService;
import com.library.management.dto.OperationLogQueryDTO;
import com.library.management.dto.OperationLogDetailDTO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

/**
* @author HY
* @description 针对表【operation_logs(操作日志表)】的数据库操作Service
* @createDate 2025-04-04 17:38:12
*/
public interface OperationLogsService extends IService<OperationLogs> {

    /**
     * 分页查询操作日志
     * @param queryDTO 查询参数
     * @return 分页结果
     */
    Page<OperationLogs> getOperationLogPage(OperationLogQueryDTO queryDTO);
    
    /**
     * 分页查询操作日志详情
     * @param queryDTO 查询参数
     * @return 分页结果（包含详细信息）
     */
    Page<OperationLogDetailDTO> getOperationLogDetailPage(OperationLogQueryDTO queryDTO);
    
    /**
     * 记录操作日志
     * @param operatorId 操作者ID
     * @param actionType 操作类型
     * @param targetType 目标类型
     * @param targetId 目标ID
     * @param description 操作描述
     * @param ipAddress IP地址
     * @return 是否记录成功
     */
    boolean addOperationLog(Integer operatorId, String actionType, String targetType, 
                          Integer targetId, String description, String ipAddress);
}
